package com.zp.business.service.outpFees;

import com.zp.business.entity.outpFees.bo.OutpFeesDetailBo;
import com.zp.business.entity.outpFees.vo.OutpFeesDetailVo;
import com.zp.common.myBatis.core.page.PageQuery;
import com.zp.common.myBatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 门诊收费记录明细Service接口
 *
 * @author zhang peng
 * @ date 2024-04-12
 */
public interface IOutpFeesDetailService {

    /**
     * 查询门诊收费记录明细
     */
    OutpFeesDetailVo queryById (String outpFeesDetailId);

    /**
     * 查询门诊收费记录明细列表(分页)
     */
    TableDataInfo<OutpFeesDetailVo> queryPageList (OutpFeesDetailBo bo, PageQuery pageQuery);

    /**
     * 查询门诊收费记录明细列表(不分页)
     */
    List<OutpFeesDetailVo> queryList (OutpFeesDetailBo bo);

    /**
     * 修改门诊收费记录明细
     */
    Boolean insertByBo (OutpFeesDetailBo bo);

    /**
     * 修改门诊收费记录明细
     */
    Boolean updateByBo (OutpFeesDetailBo bo);

    /**
     * 校验并批量删除门诊收费记录明细信息
     */
    Boolean deleteWithValidByIds (Collection<String> ids, Boolean isValid);

    /**
     * 修改收费状态
     *
     * @param chargeType            收费状态
     * @param clinicOrderIdOrCostId 门诊医嘱id或者costId
     * @return
     */
    Boolean updateChargeType (String chargeType, String clinicOrderIdOrCostId, String type);
}
